/*
  1.日志的输出时间
  2.日志等级
  3.源文件名称
  4.源文件行号
  5.线程id
  6.日志主体信息
  7.日志器名称（支持多日志器）
*/
#ifndef _M_MSG_H__
#define _M_MSG_H__
#include <iostream>
#include <string>
#include <thread>
#include "level.hpp"
#include "util.hpp"
namespace xglog
{
  struct LogMsg
  {
    time_t _ctime;          // 日志产生的时间戳
    LogLevel::value _level; // 日志等级
    size_t _line;           // 错误行号
    std::thread::id _tid;   // 线程id
    std::string _file;      // 文件名
    std::string _logger;    // 日志器
    std::string _payload;   // 内容
    LogMsg(LogLevel::value level,
           size_t line,
           const std::string file,
           const std::string logger,
           const std::string msg) : _ctime(util::Date::now()),
                                    _level(level),
                                    _line(line),
                                    _tid(std::this_thread::get_id()),
                                    _file(file),
                                    _logger(logger),
                                    _payload(msg) {}
  };
}
#endif